package View;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import Controller.Sistema;
import Model.PlanView;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class GestionPlanes extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel lblPlan;
	private JLabel lblDescripcionPlan;
	private JTextField txtDescripcionPlan;
	private JLabel lblCantidadSMS;
	private JLabel lblCostoDatos;
	private JTextField txtCostoDatos;
	private JTextField txtDatosIncluidos;
	private JLabel lblDatos;
	private JButton btnGestionarServicios;
	private JButton btnGuardar;
	private JTextField txtCostoSMSAdicional;
	private JLabel lblCostoSMSAdicional;
	private JTextField txtCostoMinutoAdicional;
	private JLabel lblCostoMinutoAdicional;
	private JTextField txtSMS;
	private JTextField txtMinutosLibres;
	private JLabel lblCantMinutos;
	private JComboBox<PlanView> cmbPlan;
	private PlanView planSeleccionado;
	private ComboBoxModel<PlanView> cmbPlanModel;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {

		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				GestionPlanes inst = new GestionPlanes();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public GestionPlanes() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				lblPlan = new JLabel();
				getContentPane().add(lblPlan);
				lblPlan.setText("Plan");
				lblPlan.setBounds(17, 12, 23, 16);
			}
			{
				cmbPlanModel = new DefaultComboBoxModel<PlanView>(Sistema.getInstancia().getPlanesDisponibles());
				cmbPlan = new JComboBox<PlanView>();
				getContentPane().add(cmbPlan);
				cmbPlan.setModel(cmbPlanModel);
				cmbPlan.setBounds(52, 9, 231, 23);
				cmbPlan.addItemListener(new ItemListener(){					
					public void itemStateChanged(ItemEvent arg0) {
						planSeleccionado = Sistema.getInstancia().getPlanesDisponibles().elementAt(cmbPlan.getSelectedIndex());
						txtDescripcionPlan.setText(planSeleccionado.getDescripcion());
						
						if (planSeleccionado.getPlanType().equals("PlanBaseView")){
								txtDatosIncluidos.setText(Integer.toString(planSeleccionado.getCantidadDatos()));
								txtCostoDatos.setText(Float.toString(planSeleccionado.getCostoAdicionalDatos()));
								txtCostoMinutoAdicional.setText(Float.toString(planSeleccionado.getCostoAdicionalMinutosLibres()));
								txtMinutosLibres.setText(Integer.toString(planSeleccionado.getCantidadMinutosLibres()));
								txtSMS.setText(Integer.toString(planSeleccionado.getCantidadSMS()));
								txtCostoSMSAdicional.setText(Float.toString(planSeleccionado.getCostoAdicionalSMS()));
								txtCostoDatos.setVisible(true);
								txtDatosIncluidos.setVisible(true);
								lblCostoDatos.setVisible(true);
								lblDatos.setVisible(true);
								txtCostoMinutoAdicional.setVisible(true);
								lblCostoMinutoAdicional.setVisible(true);
								txtMinutosLibres.setVisible(true);
								lblCantMinutos.setVisible(true);
								txtSMS.setVisible(true);
								lblCantidadSMS.setVisible(true);
								txtCostoSMSAdicional.setVisible(true);
								lblCostoSMSAdicional.setVisible(true);
						}
						else{
							txtCostoDatos.setVisible(false);
							txtDatosIncluidos.setVisible(false);
							lblCostoDatos.setVisible(false);
							lblDatos.setVisible(false);
							txtCostoMinutoAdicional.setVisible(false);
							lblCostoMinutoAdicional.setVisible(false);
							txtMinutosLibres.setVisible(false);
							lblCantMinutos.setVisible(false);
							txtSMS.setVisible(false);
							lblCantidadSMS.setVisible(false);
							txtCostoSMSAdicional.setVisible(false);
							lblCostoSMSAdicional.setVisible(false);
						}
					}
					
				});
			}
			{
				lblDescripcionPlan = new JLabel();
				getContentPane().add(lblDescripcionPlan);
				lblDescripcionPlan.setText("Descripcion");
				lblDescripcionPlan.setBounds(17, 55, 62, 16);
			}
			{
				txtDescripcionPlan = new JTextField();
				getContentPane().add(txtDescripcionPlan);
				txtDescripcionPlan.setBounds(91, 52, 281, 51);
			}
			{
				lblCantMinutos = new JLabel();
				getContentPane().add(lblCantMinutos);
				lblCantMinutos.setText("Minutos Libres");
				lblCantMinutos.setBounds(12, 125, 78, 16);
				lblCantMinutos.setVisible(false);
			}
			{
				txtMinutosLibres = new JTextField();
				getContentPane().add(txtMinutosLibres);
				txtMinutosLibres.setBounds(97, 122, 68, 23);
				txtMinutosLibres.setVisible(false);
			}
			{
				lblCantidadSMS = new JLabel();
				getContentPane().add(lblCantidadSMS);
				lblCantidadSMS.setText("SMS incluidos:");
				lblCantidadSMS.setBounds(12, 169, 77, 16);
				lblCantidadSMS.setVisible(false);
			}
			{
				txtSMS = new JTextField();
				getContentPane().add(txtSMS);
				txtSMS.setBounds(97, 166, 68, 23);
				txtSMS.setVisible(false);
			}
			{
				lblCostoMinutoAdicional = new JLabel();
				getContentPane().add(lblCostoMinutoAdicional);
				lblCostoMinutoAdicional.setText("Costo Minuto Adicional:");
				lblCostoMinutoAdicional.setBounds(177, 125, 135, 16);
				lblCostoMinutoAdicional.setVisible(false);
			}
			{
				txtCostoMinutoAdicional = new JTextField();
				getContentPane().add(txtCostoMinutoAdicional);
				txtCostoMinutoAdicional.setBounds(312, 122, 63, 23);
				txtCostoMinutoAdicional.setVisible(false);
			}
			{
				lblCostoSMSAdicional = new JLabel();
				getContentPane().add(lblCostoSMSAdicional);
				lblCostoSMSAdicional.setText("Costo SMS Adicional:");
				lblCostoSMSAdicional.setBounds(177, 169, 119, 16);
				lblCostoSMSAdicional.setVisible(false);
			}
			{
				txtCostoSMSAdicional = new JTextField();
				getContentPane().add(txtCostoSMSAdicional);
				txtCostoSMSAdicional.setBounds(314, 166, 58, 23);
				txtCostoSMSAdicional.setVisible(false);
			}
			{
				btnGuardar = new JButton();
				getContentPane().add(btnGuardar);
				btnGuardar.setText("Guardar Cambios");
				btnGuardar.setBounds(12, 296, 106, 23);
				btnGuardar.addActionListener(new ActionListener (){
					public void actionPerformed(ActionEvent arg0) {
						if (planSeleccionado.getPlanType().equals("PlanBaseVew")){
							Sistema.getInstancia().modificarPlanBase(planSeleccionado.getNroPlan(), txtDescripcionPlan.getText(), Integer.valueOf(txtSMS.getText()), Integer.valueOf(txtMinutosLibres.getText()), Float.valueOf(txtCostoSMSAdicional.getText()), Float.valueOf(txtCostoMinutoAdicional.getText()), Integer.valueOf(txtDatosIncluidos.getText()), Float.valueOf(txtCostoDatos.getText()));
						}
						else{
						Sistema.getInstancia().modificarPlan(planSeleccionado.getNroPlan(), txtDescripcionPlan.getText(), Integer.valueOf(txtSMS.getText()), Integer.valueOf(txtMinutosLibres.getText()), Float.valueOf(txtCostoSMSAdicional.getText()), Float.valueOf(txtCostoMinutoAdicional.getText()));
						}
						int currentCmbIndex = cmbPlan.getSelectedIndex();
						cmbPlanModel =	new DefaultComboBoxModel<PlanView>(Sistema.getInstancia().getPlanesDisponibles());
						cmbPlan.setModel(cmbPlanModel);
						cmbPlan.setSelectedIndex(currentCmbIndex);
						
					}
					
					
				});
			}
			{
				btnGestionarServicios = new JButton();
				getContentPane().add(btnGestionarServicios);
				btnGestionarServicios.setText("Gestionar Servicios");
				btnGestionarServicios.setBounds(259, 296, 113, 23);
				btnGestionarServicios.setToolTipText("Gestionar Servicios del plan activo");
				
			
			}
			{
				lblDatos = new JLabel();
				getContentPane().add(lblDatos);
				lblDatos.setText("Datos Incluidos");
				lblDatos.setBounds(12, 212, 81, 16);
				lblDatos.setVisible(false);
			}
			{
				txtDatosIncluidos = new JTextField();
				getContentPane().add(txtDatosIncluidos);
				txtDatosIncluidos.setBounds(97, 209, 68, 23);
				txtDatosIncluidos.setVisible(false);
			}
			{
				lblCostoDatos = new JLabel();
				getContentPane().add(lblCostoDatos);
				lblCostoDatos.setText("Costo Datos Excedentes:");
				lblCostoDatos.setBounds(177, 212, 128, 16);
				lblCostoDatos.setVisible(false);
			}
			{
				txtCostoDatos = new JTextField();
				getContentPane().add(txtCostoDatos);
				txtCostoDatos.setBounds(314, 209, 58, 23);
				txtCostoDatos.setVisible(false);
			}
			pack();
			this.setSize(477, 369);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
